# _*_ coding: utf-8 _*_
"""
@ 时间    ：2024/10/25 12:54
@ 作者    ：旺财
@ 文件    ：03 缺失值处理.py
@ 说明    ：   
"""
import numpy as np
import pandas as pd

df = pd.DataFrame([[1, np.nan, 3], [np.nan, 2, np.nan], [1, np.nan, 0]], columns=['A', 'B', 'C'])
print(df)
print()

# 1. 查看空值
print(df.isnull())  # 或者df.isna()
print()

# 2. 查看某列空值
print(df['C'].isnull())
print()

# 3. 按列查看某列空值行
print(df[df['B'].isnull()])
print()

# 4. 删除空值行
df_new = df.dropna()
print(df_new)

# 5. 按行当非空值数量删除行
df_new = df.dropna(thresh=2)
print(df_new)

# 6. 按列的平均值填补该列空值
df_new = df.fillna(df.mean())
print(df_new)

# 7. 按列的中位数填补该列空值
df_new = df.fillna(df.median())
print(df_new)

# 8. 按空值上方的值填补空值
df_new = df.ffill()
print(df_new)

# 9. 按空值下方的值填补空值
df_new = df.bfill()
print(df_new)